`timescale 1ns / 1ns			//10ns -> 1us
module test_zl_2346_7;

reg cp;
reg rst_n;
reg key_in;

wire [23:0] freq;
wire [23:0] FTW;
wire [6:0]  addr;
wire [7:0]  DAC;

zl_2346_7 key(
	.cp(cp),
	.rst_n(rst_n),
	.key_in(key_in),
	.addr(addr),
	.DAC(DAC),
	.freq(freq),
	.FTW(FTW)
	
);

parameter t = 10000;		//10000ns -> 1ms
integer i;

always #50 cp = ~cp; //100ns -> 10us

initial begin
	cp 	 = 1'b0;
	rst_n  = 1'b0;
	key_in = 1'b0;
	
	#(10*t) rst_n = 1;
	#(50*t);
	
	//点击(连续短按5次，步进5）
	for(i = 1'd0;i < 4'd4;i = i + 1'b1) begin
		#(100*t); key_in = 1'b0;
		#(300*t); key_in = 1'b1;
		#(100*t); key_in = 1'b0;
		#(500*t);
	end
	
	//长击（步进持续2300ms，步进230）
	#(100*t); key_in = 1'b0;
	#(300*t); key_in = 1'b1;
	#(5300*t);
	#(100*t); key_in = 1'b0;
	#(500*t);//235
	
	
	
	//长击（步进持续21200ms，步进2120）
	#(100*t); key_in = 1'b0;
	#(300*t); key_in = 1'b1;
	#(24000*t);
	#(100*t); key_in = 1'b0;
	#(500*t);//2356
	
	//点击一次
	#(100*t); key_in = 1'b0;
	#(300*t); key_in = 1'b1;
	#(100*t); key_in = 1'b0;
	#(500*t);
	
	#(100*t); key_in = 1'b0;
	#(300*t); key_in = 1'b1;
	#(100*t); key_in = 1'b0;
	#(500*t);
	
	#(100*t); key_in = 1'b0;
	#(300*t); key_in = 1'b1;
	#(100*t); key_in = 1'b0;
	#(500*t);
	
	#(100*t); key_in = 1'b0;
	#(300*t); key_in = 1'b1;
	#(100*t); key_in = 1'b0;
	#(500*t);
	
	#(100*t); key_in = 1'b0;
	#(300*t); key_in = 1'b1;
	#(100*t); key_in = 1'b0;
	#(500*t);
	
	#(100*t); key_in = 1'b0;
	#(300*t); key_in = 1'b1;
	#(100*t); key_in = 1'b0;
	#(500*t);
	
	#(100*t); key_in = 1'b0;
	#(300*t); key_in = 1'b1;
	#(100*t); key_in = 1'b0;
	#(500*t);
	
	#(100*t); key_in = 1'b0;
	#(300*t); key_in = 1'b1;
	#(100*t); key_in = 1'b0;
	#(500*t);
	
	#(100*t); key_in = 1'b0;
	#(300*t); key_in = 1'b1;
	#(100*t); key_in = 1'b0;
	#(500*t);
	
	#(100*t); key_in = 1'b0;
	#(300*t); key_in = 1'b1;
	#(100*t); key_in = 1'b0;
	#(500*t);
	
	#(100*t); key_in = 1'b0;
	#(300*t); key_in = 1'b1;
	#(100*t); key_in = 1'b0;
	#(500*t);
	$stop;
end

endmodule
